Skip to content

feat(extensions): align static skills and Codex MCP import - #1899

Merged
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/static-skill-codex-mcp-import
Jul 30, 2026
Merged

feat(extensions): align static skills and Codex MCP import#1899
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/static-skill-codex-mcp-import

Conversation

@limityan

Copy link
Copy Markdown
Collaborator

Summary

This combines two independently bounded extension improvements in one delivery PR:

  • align static Skill discovery with Claude Code and Codex source semantics through one source-slot parser and one shared argument-expansion owner
  • add a fail-closed Codex MCP import projection, with shared final URL validation and minimal CLI/Desktop selection UX
  • update the architecture and CLI documentation to describe the supported behavior and explicit non-goals

Design boundaries

  • Imported MCP entries remain disabled until the user explicitly enables them.
  • Codex servers that depend on environment interpolation, headers, bearer tokens, runtime-sensitive fields, or an implicit workspace working directory are reported as setup-required instead of being copied unsafely.
  • Claude Skill metadata that implies execution, hooks, dynamic substitution, or runtime policy is rejected; allowed-tools never grants capabilities.
  • No plugin runtime implementation, file watcher, source graph, generic importer, import journal/undo system, new reload command, or product-customization framework is added.

Adversarial review

A fresh-context subagent reviewed the complete diff. No P0/P1 issue remained. The review led to fixes for Codex implicit-cwd handling, selection changes during an active import, runtime-sensitive Skill frontmatter rejection, and stale CLI documentation.

One deliberate low-risk boundary remains: source/scope labels are resolved from the current catalog snapshot. A candidate that appears only after planning can briefly show Unknown; expanding the public plan DTO solely for this presentation edge was rejected as out of scope. The stale candidate still cannot be imported accidentally.

Verification

  • cargo check --workspace
  • cargo test -p bitfun-agent-runtime --test skill_contracts (29 passed)
  • cargo test -p bitfun-services-core --features markdown --test markdown_owner_contracts (9 passed)
  • cargo test -p bitfun-product-domains --features external-sources --test external_source_contracts (42 passed)
  • cargo test -p bitfun-codex-adapter --test mcp_source (16 passed)
  • cargo test -p bitfun-core claude --lib -- --nocapture (5 passed)
  • cargo test -p bitfun-cli mcp_import::tests::render_plan -- --nocapture (2 passed)
  • focused Web UI tests (18 passed)
  • pnpm run type-check:web
  • pnpm run lint:web
  • node scripts/check-core-boundaries.mjs
  • pnpm run check:repo-hygiene
  • pnpm run i18n:audit
  • pnpm run theme:color-audit:all

@limityan
limityan merged commit 39a7ca8 into GCWing:main Jul 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant